package com.tangruojie.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * - @EnumValue：表示该字段将作为 MyBatis-Plus 存入数据库的值
 * - @JsonValue：表示该字段将作为对外返回的 JSON 值（序列化时）
 */
@Getter
@AllArgsConstructor
public enum UserSex {

    MAN(1, "男"),
    WOMAN(0, "女");

    /**
     * 数据库存储值（MyBatis-Plus 使用）
     */
    @EnumValue
    private final Integer value;
    /**
     * 返回给前端的描述（JSON 序列化时使用）
     * - @JsonValue 是 Jackson 的注解，它只在 对象 → JSON（序列化） 过程中生效，与数据库操作无关。
     */
    @JsonValue
    private final String desc;

//    @Override
//    public String toString() {
//        return this.desc;
//    }

}
/**
 * 注解	            所属库	            作用阶段	        控制方向
 * - @EnumValue     MyBatis-Plus	    ORM 映射	        数据库 ↔ Java
 * - @JsonValue     Jackson (Spring)	JSON 序列化	    Java ↔ JSON
 */